/*
 * @Author: WangShuai 1830773767@qq.com
 * @Date: 2025-06-05 19:48:24
 * @LastEditors: WangShuai 1830773767@qq.com
 * @LastEditTime: 2025-06-18 15:28:23
 * @FilePath: \vue3_admin_template\project\src\api\product\spu\type.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
//服务器返回全部数据类型
export interface ResponseData {
  code: number
  message: string
  ok: boolean
}
//SPU数据ts类型 :需要修改
export interface SpuData {
  id?: number
  spuName: string
  tmId: string | number
  description: string
  category3Id: string | number
  spuSaleAttrList: null | SaleAttr[]
  spuImageList: null | SpuImg[]
}
//数组:元素都是已有的SPU数据类型
export type Records = SpuData[]
//定义获取的已有的SPU接口返回的数据ts类型
export interface HasSpuResponseData extends ResponseData {
  data: {
    records: Records
    total: number
    size: number
    current: number
    searchCount: boolean
    pages: number
  }
}

//所有品牌全部的ts数据类型
export interface TradeMark {
  id: number
  tmName: string
  logoUrl: string
}
//品牌接口返回的全部的ts类型
export interface AllTradeMark extends ResponseData {
  data: TradeMark[]
}
//商品图片的ts
//某一个SPU下的全部售卖商品图片的数据全的ts数据类型
export interface SpuImg {
  id?: number
  createTime?: string
  updateTime?: string
  spuId?: number
  imgName?: string
  imgUrl?: string
  name?: string
  url?: string
}
//已有的SPU的照片墙的数类型
export interface SpuHasImg extends ResponseData {
  data: SpuImg[]
}

//已有销售属值对象的ts类型
export interface SaleAttrValue {
  id?: number
  createTime?: null
  updateTime?: null
  spuId?: number
  baseSaleAttrId: number | string
  saleAttrValueName: string
  saleAttrName?: string
  isChecked?: null
}
//存储已有的销售属性值数组类型
export type spuSaleAttrValueList = SaleAttrValue[]
//销售属性对象ts类型
export interface SaleAttr {
  id?: number
  createTime?: null
  updateTime?: null
  spuId?: number
  baseSaleAttrId: number | string
  saleAttrName: string
  spuSaleAttrValueList: spuSaleAttrValueList
  isEdit?: boolean
  saleAttrValue?: string
  saleIdAndValueId?: string
}
//SPU 已有的销售属性接口返回的数据ts类型
export interface SaleAttrResponseData extends ResponseData {
  data: SaleAttr[]
}

//已有的全部的SPU的返回的销售属性数据ts类型
export interface HasScaleAttr {
  id: number
  name: string
}
//已有SPU所有的销售属性
export interface HasScaleAttrResponseData extends ResponseData {
  data: HasScaleAttr[]
}
export interface Attr {
  //平台属性收集
  attrId: number | string //平台属性ID
  valueId: number | string //属性值ID
}
export interface saleAttr {
  //销售属性
  saleAttrId: string | number //属性ID
  saleAttrValueId: number | string //属性值Id
}
export interface SkuData {
  category3Id: string | number //三级分裂Id
  spuId: string | number //已有的SPU的ID
  tmId: string //spu品牌的ID
  skuName: string //sku名字
  price: string | number //sku价格
  weight: string | number //sku重量
  skuDSc: string //sku描述
  skuAttrValueList?: Attr[]
  skuSaleAttrValueList?: saleAttr[]
  skuDefaultImg: string //sku图片地址
  skuDeafalut?: string //默认图片地址
}
//获取Skus数据的接口ts类型
export interface SkuInfoData extends ResponseData {
  data: SkuData[]
}
